package com.qdlc.p2p.dal.dto;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.qdlc.p2p.common.constant.Global;

/**
 * 理财项目实体
 *
 * @author liya
 * @version 1.1.0.0
 */
@Entity
@Table(name = Global.DB_PREFIX + "additional_flow_project")
public class AdditionalFlowProject {

    /** 主键 */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    /** 项目名称 */
    private String name;

    /** 项目用户 */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "user_id")
    private User user;

    /** 项目金额 */
    private double account;

    /** 利率 */
    private double apr;

    /** 状态:0发布成功，1:初审通过，2：不通过，3:投满，6:结束 */
    private byte status;

    /** 每份金额 */
    private double eachMoney;

    /** 起投份数 */
    private int startCopies;

    /** 总份数 */
    private int totalCopies;

    /** 已购份数 */
    private int yesCopies;

    /** 期限 */
    private int timeLimit;

    /** 借款详情 */
    private String content;

    /** 还款方式 */
    private int repayStyle;

    /** 审核人 */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "operator_id")
    private Operator Operator;

    /** 添加时间 */
    private Date addTime;

    /** 审核时间 */
    private Date verifyTime;

    /** 项目标记 */
    private String uuid;

    /** 备注 */
    private String remark;

    /** 审核备注 */
    private String verifyRemark;

    /** 是否按天 */
    private byte isDay;

    public AdditionalFlowProject(long id) {
        this.id = id;
    }

    public AdditionalFlowProject() {
    }

    /**
     * 获取主键
     *
     * @return 主键
     */
    public long getId() {
        return id;
    }

    /**
     * 设置主键
     *
     * @param id 要设置的主键
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * 获取项目名称
     *
     * @return 项目名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置项目名称
     *
     * @param name 要设置的项目名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取项目金额
     *
     * @return 项目金额
     */
    public double getAccount() {
        return account;
    }

    /**
     * 设置项目金额
     *
     * @param account 要设置的项目金额
     */
    public void setAccount(double account) {
        this.account = account;
    }

    /**
     * 获取利率
     *
     * @return 利率
     */
    public double getApr() {
        return apr;
    }

    /**
     * 设置利率
     *
     * @param apr 要设置的利率
     */
    public void setApr(double apr) {
        this.apr = apr;
    }

    /**
     * 获取状态:0发布成功，1:初审通过，2：不通过，3:投满，6:结束
     */
    public byte getStatus() {
        return status;
    }

    /**
     * 设置状态:0发布成功，1:初审通过，2：不通过，3:投满，6:结束
     */
    public void setStatus(byte status) {
        this.status = status;
    }

    /**
     * 获取每份金额
     *
     * @return 每份金额
     */
    public double getEachMoney() {
        return eachMoney;
    }

    /**
     * 设置每份金额
     *
     * @param eachMoney 要设置的每份金额
     */
    public void setEachMoney(double eachMoney) {
        this.eachMoney = eachMoney;
    }

    /**
     * 获取起投份数
     *
     * @return 起投份数
     */
    public int getStartCopies() {
        return startCopies;
    }

    /**
     * 设置起投份数
     *
     * @param startCopies 要设置的起投份数
     */
    public void setStartCopies(int startCopies) {
        this.startCopies = startCopies;
    }

    /**
     * 获取总份数
     *
     * @return 总份数
     */
    public int getTotalCopies() {
        return totalCopies;
    }

    /**
     * 设置总份数
     *
     * @param totalCopies 要设置的总份数
     */
    public void setTotalCopies(int totalCopies) {
        this.totalCopies = totalCopies;
    }

    /**
     * 获取已购份数
     *
     * @return 已购份数
     */
    public int getYesCopies() {
        return yesCopies;
    }

    /**
     * 设置已购份数
     *
     * @param yesCopies 要设置的已购份数
     */
    public void setYesCopies(int yesCopies) {
        this.yesCopies = yesCopies;
    }

    /**
     * 获取期限
     *
     * @return 期限
     */
    public int getTimeLimit() {
        return timeLimit;
    }

    /**
     * 设置期限
     *
     * @param timeLimit 要设置的期限
     */
    public void setTimeLimit(int timeLimit) {
        this.timeLimit = timeLimit;
    }

    /**
     * 获取还款方式
     *
     * @return 还款方式
     */
    public int getRepayStyle() {
        return repayStyle;
    }

    /**
     * 设置还款方式
     *
     * @param repayStyle 要设置的还款方式
     */
    public void setRepayStyle(int repayStyle) {
        this.repayStyle = repayStyle;
    }


    public Operator getOperator() {
        return Operator;
    }

    public void setOperator(Operator operator) {
        Operator = operator;
    }

    /**
     * 获取添加时间
     *
     * @return 添加时间
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * 设置添加时间
     *
     * @param addTime 要设置的添加时间
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * 获取审核时间
     *
     * @return 审核时间
     */
    public Date getVerifyTime() {
        return verifyTime;
    }

    /**
     * 设置审核时间
     *
     * @param verifyTime 要设置的审核时间
     */
    public void setVerifyTime(Date verifyTime) {
        this.verifyTime = verifyTime;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getVerifyRemark() {
        return verifyRemark;
    }

    public void setVerifyRemark(String verifyRemark) {
        this.verifyRemark = verifyRemark;
    }

    public byte getIsDay() {
        return isDay;
    }

    public void setIsDay(byte isDay) {
        this.isDay = isDay;
    }

    /**
     * 获取借款详情
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置借款详情
     *
     * @param content
     */
    public void setContent(String content) {
        this.content = content;
    }
}


